February 19, 2021
flex-grow, flex-shrink ๋ child ์๊ฒ ์ค ์ ์๋ property ์ด๋ค.
๋ถ๋ชจ ์์์ flex๋ฅผ ์ฃผ์์ ๋, (flex-wrap : nowrap ์ธ ์ํ) ๋ธ๋ผ์ฐ์ ๋ฅผ ์ค์ด๋ฉด ์ค์ ํ width ์ ์๊ด์์ด ์ฐ๊ทธ๋ฌ๋ ๋ค.
๊ทธ๋ฐ๋ฐ ์ด ๋ ์ด๋ค item ์ด ๋ค๋ฅธ item ๋ค๋ณด๋ค ๋ ์ฐ๊ทธ๋ฌ์ง ์ง ์ ํ ์ ์๋ค๊ณ ํ๋ค.
๊ทธ๊ฒ ๋ฐ๋ก flex-shrink ์ด๋ฉฐ ๋ํดํธ ๊ฐ์ 1์ด๋ค.
์๋ ๊ทธ๋ฆผ์ ์ผ๋ฐ์ ์ธ flex ์์ฑ์ ์ค ์ํ์ ๋ชจ์ต์ด์ง๋ง,
๋๋ฒ์งธ item ์ flex-shrink ๋ฅผ 2๋ก ๋๋ฉด, ์ฒซ๋ฒ์งธ์ ์ธ๋ฒ์งธ item ์ width ๋ณด๋ค 2๋ฐฐ๋ก ๋ ์ค์ด๋ ๋ค. ๋งค์ฐ ์ ์ฉํ property ์ด๋ค.
.child:nth-child(2) {
background: green;
flex-shrink: 2;
}
๋ฐ์ค๋ค์ ๋๊ฐ์ ๋น์จ๋ก ์ค์ด๋ค๊ฒ ํ๊ณ ์ถ์ง ์์ ๋ ์ฌ์ฉํ๋ค! 3 ํน์ 4 ๋ฅผ ์ ์ฉํด๋ณด์.
flex-grow ๋ flex-shrink ์ ๊ฐ์ง๋ง ๋ฐ๋๋ก ์์ฉํ๋ค.
ํน์ ๋ฐ์ค item ์ ๋ค๋ฅธ item ์ ๋น์จ๋ณด๋ค ๋ ํฌ๊ฒ!? ์์ํ๋ก ๋ณต๊ตฌํด ๋๊ณ ์์ํด๋ณด์.
flex-grow ์ default value ๋ 0 ์ด๋ค. ๊ทธ๋์ 2๋ฒ์งธ child ๋ฅผ 1๋ก ์ค๋ณด๋!
.child:nth-child(2) {
background: green;
flex-grow: 1;
}
๋จ์์๋ ๋น ๊ณต๊ฐ์ ๋ชจ๋ ๊ฐ์ ธ์ค๊ฑฐ๋, ๋ฐ์ค์์ดํ 2๊ฐ ๊ฐ์ง ์ ์๋ ๋งํผ ์ปค์ง๊ฒ ๋๋ค.
์ฆ ์ฌ๋ถ์ ๊ณต๊ฐ์ด ์์ผ๋ฉด flex-grow ๋ ๊ทธ ์์ผ๋ก ๋ค์ด๊ฐ์ ๋ ํฌ๊ฒ ๋ง๋ ๋ค. ์ค์ด๋ค๋๋ ๋๊ฐ์ด ๋์ด๋ฒ๋ฆฌ๋ฉด์ ๋ง์ด๋ค.
(๋ชจ๋ฐ์ผ ํ๊ฒฝ์๋ ์ฌ์ด์ฆ๊ฐ ์๋ก ๋๊ฐ๊ฒ, ๋ธ๋ผ์ฐ์ ํ๊ฒฝ์์๋ ํฌ๊ธฐ๋ฅผ ์ฐจ๋ฑ์ ๋๊ณ ์ ํ ๋ ์ฌ์ฉํ๋ฉด ๊ตฟ์ด๊ฒ ๋ค!)
์ด๋ฒ์๋ flex-grow ๋ก ๋น ๊ณต๊ฐ์ ๋ฐ์ค2 ์ ๋ฐ์ค 3์ด ๋๋ ์ ๊ฐ์ ธ๊ฐ๊ฒ ํด๋ณด์.
.child:nth-child(2) {
background: green;
flex-grow: 2;
}
.child:nth-child(3) {
flex-grow: 1;
}
์ด์ ๋จ์์๋ ๊ณต๊ฐ์ 3๋ฒ child ๊ฐ 1/3 ์ (flex-grow:1), 2๋ฒ child ๊ฐ 2/3 ์ (flex-grow:2) ๊ฐ์ ธ๊ฐ๋ค.
๊ฒฐ๋ก : flex-grow ๋ box ์ฃผ๋ณ์ ๊ณต๊ฐ์ ๊ฐ์ง๋ค (๋จน๋๋ค)>